package cn.iocoder.yudao.module.member.alliance.service;

import cn.iocoder.yudao.framework.business.basic.service.SimpleDetailService;
import cn.iocoder.yudao.framework.business.eligibility.service.AppEligibilityService;
import cn.iocoder.yudao.module.api.member.alliance.enums.CloudAllianceTypeEnum;
import cn.iocoder.yudao.module.member.alliance.dal.dataobject.CloudAllianceApplyDO;
import cn.iocoder.yudao.module.member.alliance.dal.dataobject.CloudAllianceOrderDO;
import cn.iocoder.yudao.module.member.alliance.dal.dataobject.CloudAllianceUserDO;
import cn.iocoder.yudao.module.member.alliance.vo.AppCloudAllianceUserVO;
import jakarta.annotation.Nullable;

/**
 * 云盟商信息 Service 实现类
 *
 * @author 山野羡民
 */
public interface AppCloudAllianceUserService extends AppEligibilityService<CloudAllianceUserDO, CloudAllianceOrderDO>, SimpleDetailService<AppCloudAllianceUserVO> {

    /**
     * 校验云盟商是否有效
     *
     * @param userId 用户编号
     * @param type 类型
     */
    boolean isValid(Long userId, @Nullable CloudAllianceTypeEnum type);

    /**
     * 审核通过后，更新云盟商信息
     *
     * @param aDo 云盟商信息
     */
    void updateWhenAuditPassed(CloudAllianceApplyDO aDo);

    /**
     *云盟商过期
     *
     * @return 过期个数
     */
    int cloudAllianceUserExpireBySystem();

}